/* Insert values in svp_erhebungstermin for schoolyears 1999/00 to 2007/08 and 2010/11 to 2013/14 
   for all schools in database.
   Only Erhebungen UP,KB,US are considered.
*/

create table erhebungstermin_helper (
id integer primary key,
stichtag date,
abgabetermin_schule date,
pruefungstermin_saufsicht date,
verpflichtend integer,
erhebungstyp_kurzform varchar(10),
wl_schuljahr_id varchar(40) );


insert into erhebungstermin_helper values
(13,'1999-05-01','1999-05-08','1999-06-01',0,'UP',
(select id from SVP_WL_SCHULJAHR where kurzform = '1999/00')),
(14,'1999-09-15','1999-09-22','1999-10-15',0,'KB',
(select id from SVP_WL_SCHULJAHR where kurzform = '1999/00')),
(15,'1999-10-01','1999-10-08','1999-11-01',0,'US',
(select id from SVP_WL_SCHULJAHR where kurzform = '1999/00')),
(16,'2000-05-01','2000-05-08','2000-06-01',0,'UP',
(select id from SVP_WL_SCHULJAHR where kurzform = '2000/01')),
(17,'2000-09-15','2000-09-22','2000-10-15',0,'KB',
(select id from SVP_WL_SCHULJAHR where kurzform = '2000/01')),
(18,'2000-10-01','2000-10-08','2000-11-01',0,'US',
(select id from SVP_WL_SCHULJAHR where kurzform = '2000/01')),
(19,'2001-05-01','2001-05-08','2001-06-01',0,'UP',
(select id from SVP_WL_SCHULJAHR where kurzform = '2001/02')),
(20,'2001-09-15','2001-09-22','2001-10-15',0,'KB',
(select id from SVP_WL_SCHULJAHR where kurzform = '2001/02')),
(21,'2001-10-01','2001-10-08','2001-11-01',0,'US',
(select id from SVP_WL_SCHULJAHR where kurzform = '2001/02')),
(22,'2002-05-01','2002-05-08','2002-06-01',0,'UP',
(select id from SVP_WL_SCHULJAHR where kurzform = '2002/03')),
(23,'2002-09-15','2002-09-22','2002-10-15',0,'KB',
(select id from SVP_WL_SCHULJAHR where kurzform = '2002/03')),
(24,'2002-10-01','2002-10-08','2002-11-01',0,'US',
(select id from SVP_WL_SCHULJAHR where kurzform = '2002/03')),
(25,'2003-05-01','2003-05-08','2003-06-01',0,'UP',
(select id from SVP_WL_SCHULJAHR where kurzform = '2003/04')),
(26,'2003-09-15','2003-09-22','2003-10-15',0,'KB',
(select id from SVP_WL_SCHULJAHR where kurzform = '2003/04')),
(27,'2003-10-01','2003-10-08','2003-11-01',0,'US',
(select id from SVP_WL_SCHULJAHR where kurzform = '2003/04')),
(28,'2004-05-01','2004-05-08','2004-06-01',0,'UP',
(select id from SVP_WL_SCHULJAHR where kurzform = '2004/05')),
(29,'2004-09-15','2004-09-22','2004-10-15',0,'KB',
(select id from SVP_WL_SCHULJAHR where kurzform = '2004/05')),
(30,'2004-10-01','2004-10-08','2004-11-01',0,'US',
(select id from SVP_WL_SCHULJAHR where kurzform = '2004/05')),
(31,'2005-05-01','2005-05-08','2005-06-01',0,'UP',
(select id from SVP_WL_SCHULJAHR where kurzform = '2005/06')),
(32,'2005-09-15','2005-09-22','2005-10-15',0,'KB',
(select id from SVP_WL_SCHULJAHR where kurzform = '2005/06')),
(33,'2005-10-01','2005-10-08','2005-11-01',0,'US',
(select id from SVP_WL_SCHULJAHR where kurzform = '2005/06')),
(34,'2006-05-01','2006-05-08','2006-06-01',0,'UP',
(select id from SVP_WL_SCHULJAHR where kurzform = '2006/07')),
(35,'2006-09-15','2006-09-22','2006-10-15',0,'KB',
(select id from SVP_WL_SCHULJAHR where kurzform = '2006/07')),
(36,'2006-10-01','2006-10-08','2006-11-01',0,'US',
(select id from SVP_WL_SCHULJAHR where kurzform = '2006/07')),
(37,'2007-05-01','2007-05-08','2007-06-01',0,'UP',
(select id from SVP_WL_SCHULJAHR where kurzform = '2007/08')),
(38,'2007-09-15','2007-09-22','2007-10-15',0,'KB',
(select id from SVP_WL_SCHULJAHR where kurzform = '2007/08')),
(39,'2007-10-01','2007-10-08','2007-11-01',0,'US',
(select id from SVP_WL_SCHULJAHR where kurzform = '2007/08')),
/* Erhebungstermine for 2008 and 2009 are already there */
(46,'2010-05-01','2010-05-08','2010-06-01',0,'UP',
(select id from SVP_WL_SCHULJAHR where kurzform = '2010/11')),
(47,'2010-09-15','2010-09-22','2010-10-15',0,'KB',
(select id from SVP_WL_SCHULJAHR where kurzform = '2010/11')),
(48,'2010-10-01','2010-10-08','2010-11-01',0,'US',
(select id from SVP_WL_SCHULJAHR where kurzform = '2010/11')),
(49,'2011-05-01','2011-05-08','2011-06-01',0,'UP',
(select id from SVP_WL_SCHULJAHR where kurzform = '2011/12')),
(50,'2011-09-15','2011-09-22','2011-10-15',0,'KB',
(select id from SVP_WL_SCHULJAHR where kurzform = '2011/12')),
(51,'2011-10-01','2011-10-08','2011-11-01',0,'US',
(select id from SVP_WL_SCHULJAHR where kurzform = '2011/12')),
(52,'2012-05-01','2012-05-08','2012-06-01',0,'UP',
(select id from SVP_WL_SCHULJAHR where kurzform = '2012/13')),
(53,'2012-09-15','2012-09-22','2012-10-15',0,'KB',
(select id from SVP_WL_SCHULJAHR where kurzform = '2012/13')),
(54,'2012-10-01','2012-10-08','2012-11-01',0,'US',
(select id from SVP_WL_SCHULJAHR where kurzform = '2012/13')),
(55,'2013-05-01','2013-05-08','2013-06-01',0,'UP',
(select id from SVP_WL_SCHULJAHR where kurzform = '2013/14')),
(56,'2013-09-15','2013-09-22','2013-10-15',0,'KB',
(select id from SVP_WL_SCHULJAHR where kurzform = '2013/14')),
(57,'2013-10-01','2013-10-08','2013-11-01',0,'US',
(select id from SVP_WL_SCHULJAHR where kurzform = '2013/14'))
;

delete from svp_erhebungstermin where
id like 'MP_aut_%';

insert into SVP_ERHEBUNGSTERMIN
(ID,WL_ERHEBUNGS_TYP_ID, 
STICHTAG, ABGABETERMIN_SCHULE, PRUEFUNGSTERMIN_SAUFSICHT, VERPFLICHTEND, 
SCHULE_SCHULJAHR_ID,CLIENT_KEY,
CREATE_USER,CREATE_DATE,SLICE_KEY,VERSION,
UPDATE_DATE,UPDATE_USER)
(select 'MP_aut_' || svp_schule_stamm.SCHULNUMMER || '_' || (select kurzform from svp_wl_schuljahr where id = erhebungstermin_helper.wl_schuljahr_id) || '_' || erhebungstermin_helper.erhebungstyp_kurzform,
(select svp_wl_wert.id from svp_wl_wert, svp_wl_werteliste where svp_wl_wert.WERTELISTE_ID = svp_wl_werteliste.id and svp_wl_werteliste.Bezeichnung = 'Erhebungstyp' 
and svp_wl_wert.kurzform = erhebungstermin_helper.erhebungstyp_kurzform),
stichtag, abgabetermin_schule, pruefungstermin_saufsicht,verpflichtend,
svp_schule_schuljahr.id, svp_schule_schuljahr.schule_stamm_id,
'erg01_09','2009-01-18 12:00:00.0','2008',0,
 '2009-01-18 12:00:00.0','erg01_09' from svp_schule_schuljahr, svp_schule_stamm, svp_wl_schuljahr, erhebungstermin_helper 
where svp_wl_schuljahr.id = erhebungstermin_helper.wl_schuljahr_id and SVP_SCHULE_SCHULJAHR.SCHULJAHR_ID = svp_wl_schuljahr.id and svp_schule_schuljahr.schule_stamm_id = svp_schule_stamm.id );


drop table ERHEBUNGSTERMIN_HELPER;

-- svp_erhebung_schule

-- Hilfsview zur Referenzierung von Werten aus Standardwertelisten ohne Benutzung des Primrschlssels:
create view MP_wl as
select svp_wl_wert.id as id, svp_wl_werteliste.Schluessel || '_' || svp_wl_wert.KURZFORM as kurz,
       svp_wl_werteliste.bezeichnung || '_' || svp_wl_wert.Kurzform as lang,
	   svp_wl_werteliste.bezeichnung as werteliste,svp_wl_wert.anzeigeform, svp_wl_wert.bemerkung
	   from
svp_wl_werteliste, svp_wl_wert
where svp_wl_werteliste.id = svp_wl_wert.WERTELISTE_ID;

create view MP_erhebung_0064_UP_2008_09 as
select SVP_ERHEBUNGSTERMIN.id as erhebungstermin_id from SVP_ERHEBUNGSTERMIN, SVP_SCHULE_SCHULJAHR, SVP_SCHULE_STAMM where
SVP_ERHEBUNGSTERMIN.SCHULE_SCHULJAHR_ID = SVP_SCHULE_SCHULJAHR.id and
SVP_SCHULE_SCHULJAHR.SCHULE_STAMM_ID = SVP_SCHULE_STAMM.ID and
SVP_SCHULE_STAMM.SCHULNUMMER = '0064' and
(select kurzform from svp_wl_schuljahr where id = svp_schule_schuljahr.SCHULJAHR_ID) = '2008/09'
and SVP_ERHEBUNGSTERMIN.WL_ERHEBUNGS_TYP_ID = (select id from MP_wl where kurz = 'ERHEBTYP_UP');

-- Gymnasium Donauwrth 0064
Create View MP_Gym0064 (id, schule_schuljahr_2008_id, schulverzeichnis_id) as
select svp_schule_stamm.id, svp_schule_schuljahr.id, svp_schulverzeichnis.id from svp_schule_stamm,svp_schule_schuljahr,svp_schulverzeichnis where
svp_schule_stamm.id = schule_stamm_id and
svp_schule_stamm.schulnummer = '0064' and
schuljahr_id = (select id from svp_wl_schuljahr where kurzform = '2008/09') and
svp_schulverzeichnis.schulnummer = svp_schule_stamm.schulnummer;

-- fr die UP-Erhebung im Schuljahr 2008/09 wird ein Datensatz in svp_erhebung_schule angelegt.
-- Zustndige Person ist Sekretrin02, Nicole.
delete from SVP_ERHEBUNG_SCHULE where id = 'MP_0001';
insert into SVP_ERHEBUNG_SCHULE
(ID,
ERHEBUNGSTERMIN_ID,
SCHULE_STAMM_ID,
PERSON_ID,
CLIENT_KEY,CREATE_USER,CREATE_DATE,SLICE_KEY,VERSION,UPDATE_DATE,UPDATE_USER)
values
('MP_0001',
(select erhebungstermin_id from MP_ERHEBUNG_0064_UP_2008_09),
(select id from MP_GYM0064),
(select id from svp_person where CLIENT_KEY = (select id from MP_GYM0064) and Familienname = 'Sekretrin02'),
(Select id from MP_GYM0064),'erg01_10','2010-03-01 12:00:00.0','2010',0, '2010-03-01 12:00:00.0','erg02_10');

drop view MP_ERHEBUNG_0064_UP_2008_09;
drop view MP_GYM0064;
drop view MP_WL;






